Skip to content

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Jul 18, 2025

⚠ NEVER add commits to this pull request.

🤖 This pull request was automatically created to facilitate human review of @webref/css changes triggered by curated data at 720a868.

🧐 Please review the diff below and version numbers. If all looks good, merge this pull request to release the changes to npm.

📦 Latest released @webref/css package was v7.0.6-alpha. Merging this pull request will release v7.0.7-alpha. Make sure that the bump is the right one for the changes.

✍ If any change needs to be made before release, do not add a commit to this pull request. Changes should rather be handled in a separate pull request and pushed to the main branch. You may leave this pull request open in the meantime, or close it. The pre-release job will automatically update this pull request or create a new one once the updates have made their way to the main branch.

🛈 The actual change introduced by this pull request is a version bump in packages/css/package.json. You do not need to review that change. The bumped version is not the version that will be released when this pull request is merged, but rather the version that will be released next time.

IMPORTANT:
- Diff is too long to render in a PR description: 538838 characters
- First 60000 characters shown below
- Check the action log for the full diff

Static file(s) changed:
+ README.md

diff --ignore-trailing-space '--exclude=package.json' '--exclude=README.md' '--exclude=CHANGELOG.md' '--unified=3' webref/node_modules/@webref/css/css.json packages/css/css.json
--- webref/node_modules/@webref/css/css.json
+++ packages/css/css.json
@@ -3,49 +3,57 @@
     {
       "name": "@-webkit-keyframes",
       "href": "https://compat.spec.whatwg.org/#at-ruledef--webkit-keyframes",
-      "descriptors": []
+      "descriptors": [],
+      "extended": []
     },
     {
       "name": "@apply",
       "href": "https://drafts.csswg.org/css-mixins-1/#at-ruledef-apply",
       "descriptors": [],
-      "syntax": "@apply [ <dashed-ident> | <dashed-function> ] [ { <declaration-list> } ]?;"
+      "syntax": "@apply [ <dashed-ident> | <dashed-function> ] [ { <declaration-list> } ]?;",
+      "extended": []
     },
     {
       "name": "@bottom-center",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-bottom-center",
       "descriptors": [],
-      "syntax": "@bottom-center { <declaration-list> };"
+      "syntax": "@bottom-center { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@bottom-left",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-bottom-left",
       "descriptors": [],
-      "syntax": "@bottom-left { <declaration-list> };"
+      "syntax": "@bottom-left { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@bottom-left-corner",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-bottom-left-corner",
       "descriptors": [],
-      "syntax": "@bottom-left-corner { <declaration-list> };"
+      "syntax": "@bottom-left-corner { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@bottom-right",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-bottom-right",
       "descriptors": [],
-      "syntax": "@bottom-right { <declaration-list> };"
+      "syntax": "@bottom-right { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@bottom-right-corner",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-bottom-right-corner",
       "descriptors": [],
-      "syntax": "@bottom-right-corner { <declaration-list> };"
+      "syntax": "@bottom-right-corner { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@charset",
       "prose": "However, there is no actual at-rule named @charset. When a stylesheet is actually parsed, any occurrences of an @charset rule must be treated as an unrecognized rule, and thus dropped as invalid when the stylesheet is grammar-checked.",
       "href": "https://drafts.csswg.org/css-syntax-3/#at-ruledef-charset",
-      "descriptors": []
+      "descriptors": [],
+      "extended": []
     },
     {
       "name": "@color-profile",
@@ -74,7 +82,8 @@
           "syntax": "<url>"
         }
       ],
-      "syntax": "@color-profile [<dashed-ident> | device-cmyk] {\n  [ src: [ <url> ]; ] ||\n  [ rendering-intent: [ relative-colorimetric | absolute-colorimetric | perceptual | saturation ]; ] ||\n  [ components: [ <ident># ]; ]\n}"
+      "syntax": "@color-profile [<dashed-ident> | device-cmyk] { <declaration-list> }",
+      "extended": []
     },
     {
       "name": "@container",
@@ -145,13 +154,15 @@
           "syntax": "<length>"
         }
       ],
-      "syntax": "@container <container-condition># { <block-contents> }"
+      "syntax": "@container <container-condition># { <block-contents> }",
+      "extended": []
     },
     {
       "name": "@contents",
       "href": "https://drafts.csswg.org/css-mixins-1/#at-ruledef-contents",
       "descriptors": [],
-      "syntax": "@contents [ { <declaration-list> } ]?"
+      "syntax": "@contents [ { <declaration-list> } ]?",
+      "extended": []
     },
     {
       "name": "@counter-style",
@@ -229,32 +240,37 @@
           "syntax": "cyclic | numeric | alphabetic | symbolic | additive | [fixed <integer>?] | [ extends <counter-style-name> ]"
         }
       ],
-      "syntax": "@counter-style <counter-style-name> {\n  [ system: [ cyclic | numeric | alphabetic | symbolic | additive | [fixed <integer>?] | [ extends <counter-style-name> ] ]; ] ||\n  [ negative: [ <symbol> <symbol>? ]; ] ||\n  [ prefix: [ <symbol> ]; ] ||\n  [ suffix: [ <symbol> ]; ] ||\n  [ range: [ [ [ <integer> | infinite ]{2} ]# | auto ]; ] ||\n  [ pad: [ <integer [0,∞]> && <symbol> ]; ] ||\n  [ fallback: [ <counter-style-name> ]; ] ||\n  [ symbols: [ <symbol>+ ]; ] ||\n  [ additive-symbols: [ [ <integer [0,∞]> && <symbol> ]# ]; ] ||\n  [ speak-as: [ auto | bullets | numbers | words | spell-out | <counter-style-name> ]; ]\n}"
+      "syntax": "@counter-style <counter-style-name> { <declaration-list> }",
+      "extended": []
     },
     {
       "name": "@custom-media",
       "href": "https://drafts.csswg.org/mediaqueries-5/#at-ruledef-custom-media",
       "descriptors": [],
-      "syntax": "@custom-media <extension-name> [ <media-query-list> | true | false ] ;"
+      "syntax": "@custom-media <extension-name> [ <media-query-list> | true | false ] ;",
+      "extended": []
     },
     {
       "name": "@custom-selector",
       "href": "https://drafts.csswg.org/css-extensions-1/#at-ruledef-custom-selector",
       "descriptors": [],
-      "syntax": "@custom-selector <custom-selector> <selector-list> ;"
+      "syntax": "@custom-selector <custom-selector> <selector-list> ;",
+      "extended": []
     },
     {
       "name": "@else",
       "prose": "The @else rule is a conditional group rule used to form conditional rule chains, which associate multiple conditional group rules and guarantee that only the first one that matches will evaluate its condition as true. It is defined as:",
       "href": "https://drafts.csswg.org/css-conditional-5/#at-ruledef-else",
       "descriptors": [],
-      "syntax": "@else <boolean-condition>? { <rule-list> }"
+      "syntax": "@else <boolean-condition>? { <rule-list> }",
+      "extended": []
     },
     {
       "name": "@env",
       "href": "https://drafts.csswg.org/css-mixins-1/#at-ruledef-env",
       "descriptors": [],
-      "syntax": "@env <custom-property-name> : <declaration-value>? ;"
+      "syntax": "@env <custom-property-name> <css-type>? : <declaration-value>? ;",
+      "extended": []
     },
     {
       "name": "@font-face",
@@ -262,13 +278,6 @@
       "descriptors": [
         {
           "name": "ascent-override",
-          "href": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-ascent-override",
-          "for": "@font-face",
-          "initial": "normal",
-          "syntax": "normal | <percentage [0,∞]>"
-        },
-        {
-          "name": "ascent-override",
           "href": "https://drafts.csswg.org/css-fonts-5/#descdef-font-face-ascent-override",
           "for": "@font-face",
           "initial": "normal",
@@ -276,13 +285,6 @@
         },
         {
           "name": "descent-override",
-          "href": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-descent-override",
-          "for": "@font-face",
-          "initial": "normal",
-          "syntax": "normal | <percentage [0,∞]>"
-        },
-        {
-          "name": "descent-override",
           "href": "https://drafts.csswg.org/css-fonts-5/#descdef-font-face-descent-override",
           "for": "@font-face",
           "initial": "normal",
@@ -360,13 +362,6 @@
         },
         {
           "name": "line-gap-override",
-          "href": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-line-gap-override",
-          "for": "@font-face",
-          "initial": "normal",
-          "syntax": "normal | <percentage [0,∞]>"
-        },
-        {
-          "name": "line-gap-override",
           "href": "https://drafts.csswg.org/css-fonts-5/#descdef-font-face-line-gap-override",
           "for": "@font-face",
           "initial": "normal",
@@ -422,7 +417,8 @@
           "syntax": "<unicode-range-token>#"
         }
       ],
-      "syntax": "@font-face {\n  [ font-family: [ <family-name> ]; ] ||\n  [ src: [ <font-src-list> ]; ] ||\n  [ font-style: [ auto | normal | italic | left | right | oblique [ <angle [-90deg,90deg]>{1,2} ]? ]; ] ||\n  [ font-weight: [ auto | <font-weight-absolute>{1,2} ]; ] ||\n  [ font-width: [ auto | <'font-width'>{1,2} ]; ] ||\n  [ unicode-range: [ <unicode-range-token># ]; ] ||\n  [ font-feature-settings: [ normal | <feature-tag-value># ]; ] ||\n  [ font-variation-settings: [ normal | [ <string> <number>]# ]; ] ||\n  [ font-named-instance: [ auto | <string> ]; ] ||\n  [ font-display: [ auto | block | swap | fallback | optional ]; ] ||\n  [ font-language-override: [ normal | <string> ]; ] ||\n  [ ascent-override: [ normal | <percentage [0,∞]> ]; ] ||\n  [ descent-override: [ normal | <percentage [0,∞]> ]; ] ||\n  [ line-gap-override: [ normal | <percentage [0,∞]> ]; ] ||\n  [ font-size: [ auto | [<number>]{1,2} ]; ] ||\n  [ size-adjust: [ <percentage [0,∞]> ]; ] ||\n  [ ascent-override: [ [ normal | <percentage [0,∞]> ]{1,2} ]; ] ||\n  [ descent-override: [ [ normal | <percentage [0,∞]> ]{1,2} ]; ] ||\n  [ line-gap-override: [ [ normal | <percentage [0,∞]> ]{1,2} ]; ] ||\n  [ superscript-position-override: [ [ normal | from-font | <percentage> ]{1,2} ]; ] ||\n  [ subscript-position-override: [ [ normal | from-font | <percentage> ]{1,2} ]; ] ||\n  [ superscript-size-override: [ [ normal | from-font | <percentage [0,∞]> ]{1,2} ]; ] ||\n  [ subscript-size-override: [ [ normal | from-font | <percentage [0,∞]> ]{1,2} ]; ]\n}"
+      "syntax": "@font-face { <declaration-list> }",
+      "extended": []
     },
     {
       "name": "@font-feature-values",
@@ -485,7 +481,8 @@
           "syntax": "auto | block | swap | fallback | optional"
         }
       ],
-      "syntax": "@font-feature-values <family-name># {\n  [ font-display: [ auto | block | swap | fallback | optional ]; ] ||\n  [ @stylistic { <declaration-list> } ] ||\n  [ @historical-forms { <declaration-list> } ] ||\n  [ @styleset { <declaration-list> } ] ||\n  [ @character-variant { <declaration-list> } ] ||\n  [ @swash { <declaration-list> } ] ||\n  [ @ornaments { <declaration-list> } ] ||\n  [ @annotation { <declaration-list> } ]\n}"
+      "syntax": "@font-feature-values <family-name># { <declaration-rule-list> }",
+      "extended": []
     },
     {
       "name": "@font-palette-values",
@@ -514,7 +511,8 @@
           "syntax": "[ <integer [0,∞]> <color> ]#"
         }
       ],
-      "syntax": "@font-palette-values <dashed-ident> {\n  [ font-family: [ <family-name># ]; ] ||\n  [ base-palette: [ light | dark | <integer [0,∞]> ]; ] ||\n  [ override-colors: [ [ <integer [0,∞]> <color> ]# ]; ]\n}"
+      "syntax": "@font-palette-values <dashed-ident> { <declaration-list> }",
+      "extended": []
     },
     {
       "name": "@function",
@@ -528,46 +526,53 @@
           "syntax": "<declaration-value>?"
         }
       ],
-      "syntax": "@function <function-token> <function-parameter>#? ) [ returns <css-type> ]? {\n  [ result: [ <declaration-value>? ]; ]\n}"
+      "syntax": "@function <function-token> <function-parameter>#? ) [ returns <css-type> ]? { <declaration-rule-list> }",
+      "extended": []
     },
     {
       "name": "@import",
       "prose": "The @import rule allows users to import style rules from other style sheets. If an @import rule refers to a valid stylesheet, user agents must treat the contents of the stylesheet as if they were written in place of the @import rule, with two exceptions:",
       "href": "https://drafts.csswg.org/css-cascade-5/#at-ruledef-import",
       "descriptors": [],
-      "syntax": "@import [ <url> | <string> ] [ layer | layer(<layer-name>) ]? <import-conditions> ;"
+      "syntax": "@import [ <url> | <string> ] [ layer | layer(<layer-name>) ]? <import-conditions> ;",
+      "extended": []
     },
     {
       "name": "@keyframes",
       "prose": "Keyframes are specified using the @keyframes at-rule, defined as follows:",
       "href": "https://drafts.csswg.org/css-animations-1/#at-ruledef-keyframes",
       "descriptors": [],
-      "syntax": "@keyframes <keyframes-name> { <qualified-rule-list> }"
+      "syntax": "@keyframes <keyframes-name> { <qualified-rule-list> }",
+      "extended": []
     },
     {
       "name": "@layer",
       "prose": "The @layer rule declares a cascade layer, with the option to assign style rules.",
       "href": "https://drafts.csswg.org/css-cascade-5/#at-ruledef-layer",
       "descriptors": [],
-      "syntax": "@layer <layer-name>? { <rule-list> } | @layer <layer-name>#;"
+      "syntax": "@layer <layer-name>? { <rule-list> } | @layer <layer-name>#;",
+      "extended": []
     },
     {
       "name": "@left-bottom",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-left-bottom",
       "descriptors": [],
-      "syntax": "@left-bottom { <declaration-list> };"
+      "syntax": "@left-bottom { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@left-middle",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-left-middle",
       "descriptors": [],
-      "syntax": "@left-middle { <declaration-list> };"
+      "syntax": "@left-middle { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@left-top",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-left-top",
       "descriptors": [],
-      "syntax": "@left-top { <declaration-list> };"
+      "syntax": "@left-top { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@media",
@@ -855,20 +860,23 @@
           "syntax": "<length>"
         }
       ],
-      "syntax": "@media <media-query-list> { <rule-list> }"
+      "syntax": "@media <media-query-list> { <rule-list> }",
+      "extended": []
     },
     {
       "name": "@mixin",
       "href": "https://drafts.csswg.org/css-mixins-1/#at-ruledef-mixin",
       "descriptors": [],
-      "syntax": "@mixin <function-token> <function-parameter>#? , [@contents]? ) { <declaration-rule-list> }"
+      "syntax": "@mixin <function-token> <function-parameter>#? , [@contents]? ) { <declaration-rule-list> }",
+      "extended": []
     },
     {
       "name": "@namespace",
       "prose": "The @namespace at-rule declares a namespace prefix and associates it with a given namespace name (a string). This namespace prefix can then be used in namespace-qualified names such as the CSS qualified names defined below.",
       "href": "https://drafts.csswg.org/css-namespaces-3/#at-ruledef-namespace",
       "descriptors": [],
-      "syntax": "@namespace <namespace-prefix>? [ <string> | <url> ] ;"
+      "syntax": "@namespace <namespace-prefix>? [ <string> | <url> ] ;",
+      "extended": []
     },
     {
       "name": "@page",
@@ -908,14 +916,16 @@
           "syntax": "<length [0,∞]>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ]"
         }
       ],
-      "syntax": "@page <page-selector-list>? {\n  [ size: [ <length [0,∞]>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ] ]; ] ||\n  [ page-orientation: [ upright | rotate-left | rotate-right ]; ] ||\n  [ marks: [ none | [ crop || cross ] ]; ] ||\n  [ bleed: [ auto | <length> ]; ]\n}"
+      "syntax": "@page <page-selector-list>? { <declaration-rule-list> }",
+      "extended": []
     },
     {
       "name": "@position-try",
       "prose": "The @position-try rule defines a position option with a given name, specifying one or more sets of positioning properties that can be applied to a box via position-try-fallbacks,",
       "href": "https://drafts.csswg.org/css-anchor-position-1/#at-ruledef-position-try",
       "descriptors": [],
-      "syntax": "@position-try <dashed-ident> { <declaration-list> }"
+      "syntax": "@position-try <dashed-ident> { <declaration-list> }",
+      "extended": []
     },
     {
       "name": "@property",
@@ -943,75 +953,87 @@
           "syntax": "<string>"
         }
       ],
-      "syntax": "@property <custom-property-name> {\n  [ syntax: [ <string> ]; ] ||\n  [ inherits: [ true | false ]; ] ||\n  [ initial-value: [ <declaration-value>? ]; ]\n}"
+      "syntax": "@property <custom-property-name> { <declaration-list> }",
+      "extended": []
     },
     {
       "name": "@right-bottom",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-right-bottom",
       "descriptors": [],
-      "syntax": "@right-bottom { <declaration-list> };"
+      "syntax": "@right-bottom { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@right-middle",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-right-middle",
       "descriptors": [],
-      "syntax": "@right-middle { <declaration-list> };"
+      "syntax": "@right-middle { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@right-top",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-right-top",
       "descriptors": [],
-      "syntax": "@right-top { <declaration-list> };"
+      "syntax": "@right-top { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@scope",
       "prose": "Scoped styles are described in CSS using the @scope block at-rule, which declares a scoping root and optional scoping limits associated with a set of style rules.",
       "href": "https://drafts.csswg.org/css-cascade-6/#at-ruledef-scope",
       "descriptors": [],
-      "syntax": "@scope [(<scope-start>)]? [to (<scope-end>)]? { <block-contents> }"
+      "syntax": "@scope [(<scope-start>)]? [to (<scope-end>)]? { <block-contents> }",
+      "extended": []
     },
     {
       "name": "@starting-style",
       "prose": "The @starting-style rule is a grouping rule. The style rules inside it are used to establish styles to transition from, if the previous style change event did not establish a before-change style for the element whose styles are being computed.",
       "href": "https://drafts.csswg.org/css-transitions-2/#at-ruledef-starting-style",
-      "descriptors": []
+      "descriptors": [],
+      "extended": []
     },
     {
       "name": "@supports",
       "prose": "The @supports rule is a conditional group rule whose condition tests whether the user agent supports CSS property:value pairs. Authors can use it to write style sheets that use new features when available but degrade gracefully when those features are not supported. These queries are called CSS feature queries or (colloquially) supports queries.",
       "href": "https://drafts.csswg.org/css-conditional-3/#at-ruledef-supports",
       "descriptors": [],
-      "syntax": "@supports <supports-condition> { <rule-list> }"
+      "syntax": "@supports <supports-condition> { <rule-list> }",
+      "extended": []
     },
     {
       "name": "@top-center",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-top-center",
       "descriptors": [],
-      "syntax": "@top-center { <declaration-list> };"
+      "syntax": "@top-center { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@top-left",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-top-left",
       "descriptors": [],
-      "syntax": "@top-left { <declaration-list> };"
+      "syntax": "@top-left { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@top-left-corner",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-top-left-corner",
       "descriptors": [],
-      "syntax": "@top-left-corner { <declaration-list> };"
+      "syntax": "@top-left-corner { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@top-right",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-top-right",
       "descriptors": [],
-      "syntax": "@top-right { <declaration-list> };"
+      "syntax": "@top-right { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@top-right-corner",
       "href": "https://drafts.csswg.org/css-page-3/#at-ruledef-top-right-corner",
       "descriptors": [],
-      "syntax": "@top-right-corner { <declaration-list> };"
+      "syntax": "@top-right-corner { <declaration-list> };",
+      "extended": []
     },
     {
       "name": "@view-transition",
@@ -1032,14 +1054,16 @@
           "syntax": "none | <custom-ident>+"
         }
       ],
-      "syntax": "@view-transition {\n  [ navigation: [ auto | none ]; ] ||\n  [ types: [ none | <custom-ident>+ ]; ]\n}"
+      "syntax": "@view-transition { <declaration-list> }",
+      "extended": []
     },
     {
       "name": "@when",
       "prose": "The @when at-rule is a conditional group rule that generalizes the individual conditional group rules such as @media and @supports. It is defined as:",
       "href": "https://drafts.csswg.org/css-conditional-5/#at-ruledef-when",
       "descriptors": [],
-      "syntax": "@when <boolean-condition> { <rule-list> }"
+      "syntax": "@when <boolean-condition> { <rule-list> }",
+      "extended": []
     }
   ],
   "functions": [
@@ -1047,58 +1071,58 @@
       "name": "-webkit-image-set()",
       "prose": "Implementations must accept -webkit-image-set() as a parse-time alias of image-set(). (It’s a valid value, with identical arguments to image-set(), and is turned into image-set() during parsing.)",
       "href": "https://drafts.csswg.org/css-images-4/#funcdef--webkit-image-set",
-      "type": "function"
+      "extended": []
     },
     {
       "name": "abs()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-abs",
-      "type": "function",
-      "syntax": "abs( <calc-sum> )"
+      "syntax": "abs( <calc-sum> )",
+      "extended": []
     },
     {
       "name": "acos()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-acos",
-      "type": "function",
-      "syntax": "acos( <calc-sum> )"
+      "syntax": "acos( <calc-sum> )",
+      "extended": []
     },
     {
       "name": "anchor-size()",
       "prose": "An absolutely positioned box can use the anchor-size() function in its sizing properties to refer to the size of one or more anchor boxes. The anchor-size() function resolves to a <length>. It is only allowed in the accepted @position-try properties (and is otherwise invalid).",
       "href": "https://drafts.csswg.org/css-anchor-position-1/#funcdef-anchor-size",
-      "type": "function",
-      "syntax": "anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )"
+      "syntax": "anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )",
+      "extended": []
     },
     {
       "name": "anchor()",
       "prose": "An absolutely positioned box can use the anchor() function as a value in its inset properties to refer to the position of one or more anchor boxes. The anchor() function resolves to a <length>. It is only allowed in the inset properties (and is otherwise invalid).",
       "href": "https://drafts.csswg.org/css-anchor-position-1/#funcdef-anchor",
-      "type": "function",
-      "syntax": "anchor( <anchor-name>? && <anchor-side>, <length-percentage>? )"
+      "syntax": "anchor( <anchor-name>? && <anchor-side>, <length-percentage>? )",
+      "extended": []
     },
     {
       "name": "asin()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-asin",
-      "type": "function",
-      "syntax": "asin( <calc-sum> )"
+      "syntax": "asin( <calc-sum> )",
+      "extended": []
     },
     {
       "name": "atan()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-atan",
-      "type": "function",
-      "syntax": "atan( <calc-sum> )"
+      "syntax": "atan( <calc-sum> )",
+      "extended": []
     },
     {
       "name": "atan2()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-atan2",
-      "type": "function",
-      "syntax": "atan2( <calc-sum>, <calc-sum> )"
+      "syntax": "atan2( <calc-sum>, <calc-sum> )",
+      "extended": []
     },
     {
       "name": "attr()",
       "prose": "The attr() function substitutes the value of an attribute on an element into a property, similar to how the var() function substitutes a custom property value into a function.",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-attr",
-      "type": "function",
-      "syntax": "attr( <attr-name> <attr-type>? , <declaration-value>?)"
+      "syntax": "attr( <attr-name> <attr-type>? , <declaration-value>?)",
+      "extended": []
     },
     {
       "for": [
@@ -1106,8 +1130,8 @@
       ],
       "name": "blur()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-blur",
-      "type": "function",
-      "syntax": "blur( <length>? )"
+      "syntax": "blur( <length>? )",
+      "extended": []
     },
     {
       "for": [
@@ -1115,97 +1139,96 @@
       ],
       "name": "brightness()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-brightness",
-      "type": "function",
-      "syntax": "brightness( [ <number> | <percentage> ]? )"
+      "syntax": "brightness( [ <number> | <percentage> ]? )",
+      "extended": []
     },
     {
       "name": "calc-interpolate()",
       "prose": "The calc-interpolate() interpolation notation represents an interpolated numeric or dimensional value. Like calc(), it is a math function, with the following syntax:",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-calc-interpolate",
-      "type": "function",
-      "syntax": "calc-interpolate( [ <progress-source> && [ by <easing-function> ]? && <easing-function>? ] , <input-position>{1,2} : <calc-sum> , [ <easing-function>? , <input-position>{1,2} : <calc-sum> ]#? )"
+      "syntax": "calc-interpolate( [ <progress-source> && [ by <easing-function> ]? && <easing-function>? ] , <input-position>{1,2} : <calc-sum> , [ <easing-function>? , <input-position>{1,2} : <calc-sum> ]#? )",
+      "extended": []
     },
     {
       "name": "calc-mix()",
       "prose": "The calc-mix() mix notation represents a weighted average of numeric or dimensional value. Like calc(), it is a math function, with the following syntactic form:",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-calc-mix",
-      "type": "function",
-      "syntax": "calc-mix( [ <calc-sum> <percentage [0,100]>? ]# )"
+      "syntax": "calc-mix( [ <calc-sum> <percentage [0,100]>? ]# )",
+      "extended": []
     },
     {
       "name": "calc-size()",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-calc-size",
-      "type": "function",
-      "syntax": "calc-size( <calc-size-basis>, <calc-sum> )"
+      "syntax": "calc-size( <calc-size-basis>, <calc-sum> )",
+      "extended": []
     },
     {
       "name": "calc()",
       "prose": "The calc() function is a math function that allows basic arithmetic to be performed on numerical values, using addition (+), subtraction (-), multiplication (*), division (/), and parentheses.",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-calc",
-      "type": "function",
-      "syntax": "calc( <calc-sum> )"
+      "syntax": "calc( <calc-sum> )",
+      "extended": []
     },
     {
       "for": [
         "<basic-shape>"
       ],
       "name": "circle()",
-      "prose": "The <radial-size> argument defines the circle’s radius. Rather than referring to the gradient box, values are resolved against the reference box. Two <length-percentage> values are invalid. The <position> argument defines the center of the circle. Unless otherwise specified, this defaults to center if omitted.",
       "href": "https://drafts.csswg.org/css-shapes-1/#funcdef-basic-shape-circle",
-      "type": "function",
-      "syntax": "circle( <radial-size>? [ at <position> ]? )"
+      "syntax": "circle( <radial-size>? [ at <position> ]? )",
+      "extended": []
     },
     {
       "name": "clamp()",
       "prose": "The clamp() function takes three calculations—​a minimum value, a central value, and a maximum value—​and represents its central calculation, clamped according to its min and max calculations, favoring the min calculation if it conflicts with the max. (That is, given clamp(MIN, VAL, MAX), it represents exactly the same value as max(MIN, min(VAL, MAX))).",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-clamp",
-      "type": "function",
-      "syntax": "clamp( [ <calc-sum> | none ], <calc-sum>, [ <calc-sum> | none ] )"
+      "syntax": "clamp( [ <calc-sum> | none ], <calc-sum>, [ <calc-sum> | none ] )",
+      "extended": []
     },
     {
       "name": "color-interpolate()",
       "prose": "The color-interpolate() interpolation notation represents an interpolated <color> value, with the following syntax:",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-color-interpolate",
-      "type": "function",
-      "syntax": "color-interpolate( [ <progress-source> && [ by <easing-function> ]? && <easing-function>? && <color-interpolation-method>? ] , <input-position>{1,2} : <color>, [ [ <easing-function> || <color-interpolation-method> ]?, <input-position>{1,2} : <color> ]#? )"
+      "syntax": "color-interpolate( [ <progress-source> && [ by <easing-function> ]? && <easing-function>? && <color-interpolation-method>? ] , <input-position>{1,2} : <color>, [ [ <easing-function> || <color-interpolation-method> ]?, <input-position>{1,2} : <color> ]#? )",
+      "extended": []
     },
     {
       "name": "color-layers()",
       "prose": "The color-layers() functional notation takes an optional <blend-mode> followed by a list of two or more <color> layers.",
       "href": "https://drafts.csswg.org/css-color-6/#funcdef-color-layers",
-      "type": "function",
-      "syntax": "color-layers([ <blend-mode>, ]? <color># )"
+      "syntax": "color-layers([ <blend-mode>, ]? <color># )",
+      "extended": []
     },
     {
       "name": "color-mix()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-color-mix",
-      "type": "function",
-      "syntax": "color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#)"
+      "syntax": "color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#)",
+      "extended": []
     },
     {
       "name": "color()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-color",
-      "type": "function",
-      "syntax": "color( [from <color>]? <colorspace-params> [ / [ <alpha-value> | none ] ]? )"
+      "syntax": "color( [from <color>]? <colorspace-params> [ / [ <alpha-value> | none ] ]? )",
+      "extended": []
     },
     {
       "name": "conic-gradient()",
       "href": "https://drafts.csswg.org/css-images-4/#funcdef-conic-gradient",
-      "type": "function",
-      "syntax": "conic-gradient( [ <conic-gradient-syntax> ] )"
+      "syntax": "conic-gradient( [ <conic-gradient-syntax> ] )",
+      "extended": []
     },
     {
       "name": "content()",
       "href": "https://drafts.csswg.org/css-content-3/#funcdef-content",
-      "type": "function",
-      "syntax": "content( [ text | before | after | first-letter | marker ]? )"
+      "syntax": "content( [ text | before | after | first-letter | marker ]? )",
+      "extended": []
     },
     {
       "name": "contrast-color()",
       "prose": "The contrast-color() functional notation identifies a sufficiently contrasting color against a specified background or foreground color without requiring manual computation.",
       "href": "https://drafts.csswg.org/css-color-6/#funcdef-contrast-color",
-      "type": "function",
-      "syntax": "contrast-color( [ [ <color> && [ tbd-fg | tbd-bg ] && <target-contrast>? ] | [ <color> && [ tbd-fg | tbd-bg ] && <target-contrast>, <color># ] ] )"
+      "syntax": "contrast-color( [ [ <color> && [ tbd-fg | tbd-bg ] && <target-contrast>? ] | [ <color> && [ tbd-fg | tbd-bg ] && <target-contrast>, <color># ] ] )",
+      "extended": []
     },
     {
       "for": [
@@ -1213,62 +1236,62 @@
       ],
       "name": "contrast()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-contrast",
-      "type": "function",
-      "syntax": "contrast( [ <number> | <percentage> ]? )"
+      "syntax": "contrast( [ <number> | <percentage> ]? )",
+      "extended": []
     },
     {
       "name": "control-value()",
       "prose": "The control-value() function computes to the current value of the form control it is on. If it is used on an element that is not a form control, it returns an empty string.",
       "href": "https://drafts.csswg.org/css-forms-1/#funcdef-control-value",
-      "type": "function",
-      "syntax": "control-value( <type>? )"
+      "syntax": "control-value( <type>? )",
+      "extended": []
     },
     {
       "name": "cos()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-cos",
-      "type": "function",
-      "syntax": "cos( <calc-sum> )"
+      "syntax": "cos( <calc-sum> )",
+      "extended": []
     },
     {
       "name": "counter()",
       "prose": "Counters have no visible effect by themselves, but their values can be used with the counter() and counters() functions, whose used values represent counter values as strings or images. They are defined as follows:",
       "href": "https://drafts.csswg.org/css-lists-3/#funcdef-counter",
-      "type": "function",
-      "syntax": "counter( <counter-name>, <counter-style>? )"
+      "syntax": "counter( <counter-name>, <counter-style>? )",
+      "extended": []
     },
     {
       "name": "counters()",
       "prose": "Counters have no visible effect by themselves, but their values can be used with the counter() and counters() functions, whose used values represent counter values as strings or images. They are defined as follows:",
       "href": "https://drafts.csswg.org/css-lists-3/#funcdef-counters",
-      "type": "function",
-      "syntax": "counters( <counter-name>, <string>, <counter-style>? )"
+      "syntax": "counters( <counter-name>, <string>, <counter-style>? )",
+      "extended": []
     },
     {
       "name": "cross-fade()",
       "href": "https://drafts.csswg.org/css-images-4/#funcdef-cross-fade",
-      "type": "function",
-      "syntax": "cross-fade( <cf-image># )"
+      "syntax": "cross-fade( <cf-image># )",
+      "extended": []
     },
     {
       "for": [
         "<request-url-modifier>"
       ],
-      "name": "crossorigin()",
-      "prose": "<crossorigin-modifier> = crossorigin(anonymous | use-credentials)",
-      "href": "https://drafts.csswg.org/css-values-5/#funcdef-request-url-modifier-crossorigin",
-      "type": "function"
+      "name": "cross-origin()",
+      "prose": "<cross-origin-modifier> = cross-origin(anonymous | use-credentials)",
+      "href": "https://drafts.csswg.org/css-values-5/#funcdef-request-url-modifier-cross-origin",
+      "extended": []
     },
     {
       "name": "cubic-bezier()",
       "href": "https://drafts.csswg.org/css-easing-2/#funcdef-cubic-bezier",
-      "type": "function",
-      "syntax": "cubic-bezier( [ <number [0,1]>, <number> ]#{2} )"
+      "syntax": "cubic-bezier( [ <number [0,1]>, <number> ]#{2} )",
+      "extended": []
     },
     {
       "name": "device-cmyk()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-device-cmyk",
-      "type": "function",
-      "syntax": "<legacy-device-cmyk-syntax> | <modern-device-cmyk-syntax>"
+      "syntax": "<legacy-device-cmyk-syntax> | <modern-device-cmyk-syntax>",
+      "extended": []
     },
     {
       "for": [
@@ -1276,42 +1299,41 @@
       ],
       "name": "drop-shadow()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-drop-shadow",
-      "type": "function",
-      "syntax": "drop-shadow( [ <color>? && <length>{2,3} ] )"
+      "syntax": "drop-shadow( [ <color>? && <length>{2,3} ] )",
+      "extended": []
     },
     {
       "name": "dynamic-range-limit-mix()",
       "href": "https://drafts.csswg.org/css-color-hdr-1/#funcdef-dynamic-range-limit-mix",
-      "type": "function",
-      "syntax": "dynamic-range-limit-mix( [ <'dynamic-range-limit'> && <percentage [0,100]> ]#{2,} )"
+      "syntax": "dynamic-range-limit-mix( [ <'dynamic-range-limit'> && <percentage [0,100]> ]#{2,} )",
+      "extended": []
     },
     {
       "name": "element()",
       "href": "https://drafts.csswg.org/css-images-4/#funcdef-element",
-      "type": "function",
-      "syntax": "element( <id-selector> )"
+      "syntax": "element( <id-selector> )",
+      "extended": []
     },
     {
       "for": [
         "<basic-shape>"
       ],
       "name": "ellipse()",
-      "prose": "The <radial-size> argument defines the horizontal and vertical radiuses of the ellipse. Rather than referring to the gradient box, values are resolved against the reference box. The <position> argument defines the center of the ellipse. Unless otherwise specified, this defaults to center if omitted.",
       "href": "https://drafts.csswg.org/css-shapes-1/#funcdef-basic-shape-ellipse",
-      "type": "function",
-      "syntax": "ellipse( <radial-size>? [ at <position> ]? )"
+      "syntax": "ellipse( <radial-size>? [ at <position> ]? )",
+      "extended": []
     },
     {
       "name": "env()",
       "href": "https://drafts.csswg.org/css-env-1/#funcdef-env",
-      "type": "function",
-      "syntax": "env( <custom-ident> <integer [0,∞]>*, <declaration-value>? )"
+      "syntax": "env( <custom-ident> <integer [0,∞]>*, <declaration-value>? )",
+      "extended": []
     },
     {
       "name": "exp()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-exp",
-      "type": "function",
-      "syntax": "exp( <calc-sum> )"
+      "syntax": "exp( <calc-sum> )",
+      "extended": []
     },
     {
       "for": [
@@ -1319,21 +1341,21 @@
       ],
       "name": "fade()",
       "href": "https://drafts.csswg.org/css-overflow-4/#funcdef-text-overflow-fade",
-      "type": "function",
-      "syntax": "fade( [ <length-percentage> ] )"
+      "syntax": "fade( [ <length-percentage> ] )",
+      "extended": []
     },
     {
       "name": "filter()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter",
-      "type": "function",
-      "syntax": "filter( [ <image> | <string> ], <filter-value-list> )"
+      "syntax": "filter( [ <image> | <string> ], <filter-value-list> )",
+      "extended": []
     },
     {
       "name": "first-valid()",
       "prose": "The first-valid() functional notation inlines the fallback behavior intrinsic to parsing declarations. Unlike most notations, it can accept any valid or invalid syntax in its arguments, and represents the first value among its arguments that is supported (parsed as valid) by the UA as the whole value of the property it’s used in.",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-first-valid",
-      "type": "function",
-      "syntax": "first-valid( <declaration-value># )"
+      "syntax": "first-valid( <declaration-value># )",
+      "extended": []
     },
     {
       "for": [
@@ -1342,8 +1364,8 @@
       ],
       "name": "fit-content()",
       "href": "https://drafts.csswg.org/css-grid-2/#funcdef-grid-template-columns-fit-content",
-      "type": "function",
-      "syntax": "fit-content( <length-percentage> )"
+      "syntax": "fit-content( <length-percentage> )",
+      "extended": []
     },
     {
       "for": [
@@ -1356,8 +1378,8 @@
       ],
       "name": "fit-content()",
       "href": "https://drafts.csswg.org/css-sizing-3/#funcdef-width-fit-content",
-      "type": "function",
-      "syntax": "fit-content(<length-percentage [0,∞]>)"
+      "syntax": "fit-content(<length-percentage [0,∞]>)",
+      "extended": []
     },
     {
       "for": [
@@ -1365,26 +1387,26 @@
       ],
       "name": "grayscale()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-grayscale",
-      "type": "function",
-      "syntax": "grayscale( [ <number> | <percentage> ]? )"
+      "syntax": "grayscale( [ <number> | <percentage> ]? )",
+      "extended": []
     },
     {
       "name": "hdr-color()",
       "href": "https://drafts.csswg.org/css-color-hdr-1/#funcdef-hdr-color",
-      "type": "function",
-      "syntax": "color-hdr([ <color> && <number [0,∞]>? ]#{2})"
+      "syntax": "color-hdr([ <color> && <number [0,∞]>? ]#{2})",
+      "extended": []
     },
     {
       "name": "hsl()",
       "href": "https://drafts.csswg.org/css-color-4/#funcdef-hsl",
-      "type": "function",
-      "syntax": "[ <legacy-hsl-syntax> | <modern-hsl-syntax> ]"
+      "syntax": "[ <legacy-hsl-syntax> | <modern-hsl-syntax> ]",
+      "extended": []
     },
     {
       "name": "hsla()",
       "href": "https://drafts.csswg.org/css-color-4/#funcdef-hsla",
-      "type": "function",
-      "syntax": "[ <legacy-hsla-syntax> | <modern-hsla-syntax> ]"
+      "syntax": "[ <legacy-hsla-syntax> | <modern-hsla-syntax> ]",
+      "extended": []
     },
     {
       "for": [
@@ -1392,70 +1414,69 @@
       ],
       "name": "hue-rotate()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-hue-rotate",
-      "type": "function",
-      "syntax": "hue-rotate( [ <angle> | <zero> ]? )"
+      "syntax": "hue-rotate( [ <angle> | <zero> ]? )",
+      "extended": []
     },
     {
       "name": "hwb()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-hwb",
-      "type": "function",
-      "syntax": "hwb([from <color>]? [<hue> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "hwb([from <color>]? [<hue> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "name": "hypot()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-hypot",
-      "type": "function",
-      "syntax": "hypot( <calc-sum># )"
+      "syntax": "hypot( <calc-sum># )",
+      "extended": []
     },
     {
       "name": "ictcp()",
       "href": "https://drafts.csswg.org/css-color-hdr-1/#funcdef-ictcp",
-      "type": "function",
-      "syntax": "ictcp([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "ictcp([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "name": "ident()",
       "prose": "The ident() function represents an <ident>, and can be used to manually construct <custom-ident> values from several parts.",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-ident",
-      "type": "function",
-      "syntax": "ident( <ident-arg>+ )"
+      "syntax": "ident( <ident-arg>+ )",
+      "extended": []
     },
     {
       "name": "if()",
       "prose": "The if() function is an arbitrary substitution function that represents conditional values. Its argument consists of an ordered semi-colon–separated list of statements, each consisting of a condition followed by a colon followed by a value. An if() function represents the value corresponding to the first condition in its argument list to be true; if no condition matches, then the if() function represents an empty token stream.",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-if",
-      "type": "function",
-      "syntax": "if( [ <if-branch> ; ]* <if-branch> ;? )"
+      "syntax": "if( [ <if-branch> ; ]* <if-branch> ;? )",
+      "extended": []
     },
     {
       "name": "image-set()",
       "prose": "Delivering the most appropriate image resolution for a user’s device can be a difficult task. Ideally, images should be in the same resolution as the device they’re being viewed in, which can vary between users. However, other factors can factor into the decision of which image to send; for example, if the user is on a slow mobile connection, they may prefer to receive lower-res images rather than waiting for a large proper-res image to load. The image-set() function allows an author to ignore most of these issues, simply providing multiple resolutions of an image and letting the UA decide which is most appropriate in a given situation.",
       "href": "https://drafts.csswg.org/css-images-4/#funcdef-image-set",
-      "type": "function",
-      "syntax": "image-set( <image-set-option># )"
+      "syntax": "image-set( <image-set-option># )",
+      "extended": []
     },
     {
       "name": "image()",
       "href": "https://drafts.csswg.org/css-images-4/#funcdef-image",
-      "type": "function",
-      "syntax": "image( <image-tags>? [ <image-src>? , <color>? ]! )"
+      "syntax": "image( <image-tags>? [ <image-src>? , <color>? ]! )",
+      "extended": []
     },
     {
       "name": "inherit()",
       "prose": "Like the inherit keyword, the inherit() functional notation resolves to the computed value of a property on the parent. Rather than resolving to the value of the same property, however, it resolves to a sequence of component values representing the computed value of the property specified as its first argument. Its second argument, if present, is used as a fallback in case the first argument resolves to the guaranteed-invalid value.",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-inherit",
-      "type": "function",
-      "syntax": "inherit( <custom-property-name>, <declaration-value>? )"
+      "syntax": "inherit( <custom-property-name>, <declaration-value>? )",
+      "extended": []
     },
     {
       "for": [
         "<basic-shape>"
       ],
       "name": "inset()",
-      "prose": "Defines an inset rectangle via insets from each edge of the reference box. If less than four <length-percentage> values are provided, the omitted values default in the same way as the margin shorthand: an omitted second or third value defaults to the first, and an omitted fourth value defaults to the second. The four <length-percentage>s define the position of the top, right, bottom, and left edges of a rectangle, respectively, as insets from the corresponding edges of the reference box. A pair of insets in either dimension that add up to more than the used dimension (such as left and right insets of 75% apiece) use the CSS Backgrounds 3 § 4.5 Overlapping Curves rules to proportionally reduce the inset effect to 100%. For example, specifying inset(75% 0 50% 0) has the top+bottom edges summing to 125% of the reference box’s height. They’re proportionally reduced to sum to 100%, identical to specifying inset(60% 0 40% 0). The optional <'border-radius'> argument(s) define rounded corners for the rectangle using the border-radius shorthand syntax.",
       "href": "https://drafts.csswg.org/css-shapes-1/#funcdef-basic-shape-inset",
-      "type": "function",
-      "syntax": "inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )"
+      "syntax": "inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )",
+      "extended": []
     },
     {
       "for": [
@@ -1464,14 +1485,14 @@
       "name": "integrity()",
       "prose": "<integrity-modifier> = integrity(<string>)",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-request-url-modifier-integrity",
-      "type": "function"
+      "extended": []
     },
     {
       "name": "interpolate()",
       "prose": "The interpolate() interpolation notation represents the interpolation of entire property values, which supports two alternative syntax patterns:",
       "href": "https://drafts.csswg.org/css-values-5/#funcdef-interpolate",
-      "type": "function",
-      "syntax": "interpolate( [ <progress-source> && [ by <easing-function> ]? && <easing-function>? ] , <input-position>{1,2} : <whole-value>, [ <easing-function>?, <input-position>{1,2} : <whole-value> ]#? ) | interpolate( <progress-source> && [ by <easing-function> ]? && <easing-function>? of <keyframes-name> )"
+      "syntax": "interpolate( [ <progress-source> && [ by <easing-function> ]? && <easing-function>? ] , <input-position>{1,2} : <whole-value>, [ <easing-function>?, <input-position>{1,2} : <whole-value> ]#? ) | interpolate( <progress-source> && [ by <easing-function> ]? && <easing-function>? of <keyframes-name> )",
+      "extended": []
     },
     {
       "for": [
@@ -1479,63 +1500,63 @@
       ],
       "name": "invert()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-invert",
-      "type": "function",
-      "syntax": "invert( [ <number> | <percentage> ]? )"
+      "syntax": "invert( [ <number> | <percentage> ]? )",
+      "extended": []
     },
     {
       "name": "jzazbz()",
       "href": "https://drafts.csswg.org/css-color-hdr-1/#funcdef-jzazbz",
-      "type": "function",
-      "syntax": "jzazbz([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "jzazbz([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "name": "jzczhz()",
       "href": "https://drafts.csswg.org/css-color-hdr-1/#funcdef-jzczhz",
-      "type": "function",
-      "syntax": "jzczhz([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<hue> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "jzczhz([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<hue> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "name": "lab()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-lab",
-      "type": "function",
-      "syntax": "lab([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "lab([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "name": "lch()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-lch",
-      "type": "function",
-      "syntax": "lch([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<hue> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "lch([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<hue> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "name": "leader()",
       "href": "https://drafts.csswg.org/css-content-3/#funcdef-leader",
-      "type": "function",
-      "syntax": "leader( <leader-type> )"
+      "syntax": "leader( <leader-type> )",
+      "extended": []
     },
     {
       "name": "light-dark()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-light-dark",
-      "type": "function",
-      "syntax": "light-dark( <color>, <color> )"
+      "syntax": "light-dark( <color>, <color> )",
+      "extended": []
     },
     {
       "name": "linear-gradient()",
       "prose": "The linear-gradient() notation specifies a linear gradient in CSS. Its syntax is as follows:",
       "href": "https://drafts.csswg.org/css-images-3/#funcdef-linear-gradient",
-      "type": "function",
-      "syntax": "linear-gradient( [ <linear-gradient-syntax> ] )"
+      "syntax": "linear-gradient( [ <linear-gradient-syntax> ] )",
+      "extended": []
     },
     {
       "name": "linear()",
       "href": "https://drafts.csswg.org/css-easing-2/#funcdef-linear",
-      "type": "function",
-      "syntax": "linear( [ <number> && <percentage>{0,2} ]# )"
+      "syntax": "linear( [ <number> && <percentage>{0,2} ]# )",
+      "extended": []
     },
     {
       "name": "log()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-log",
-      "type": "function",
-      "syntax": "log( <calc-sum>, <calc-sum>? )"
+      "syntax": "log( <calc-sum>, <calc-sum>? )",
+      "extended": []
     },
     {
       "for": [
@@ -1543,34 +1564,34 @@
       ],
       "name": "matrix()",
       "href": "https://drafts.csswg.org/css-transforms-1/#funcdef-transform-matrix",
-      "type": "function",
-      "syntax": "matrix( <number>#{6} )"
+      "syntax": "matrix( <number>#{6} )",
+      "extended": []
     },
     {
       "name": "matrix3d()",
       "href": "https://drafts.csswg.org/css-transforms-2/#funcdef-matrix3d",
-      "type": "function",
-      "syntax": "matrix3d( <number>#{16} )"
+      "syntax": "matrix3d( <number>#{16} )",
+      "extended": []
     },
     {
       "name": "max()",
       "prose": "The min() or max() functions contain one or more comma-separated calculations, and represent the smallest (most negative) or largest (most positive) of them, respectively.",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-max",
-      "type": "function",
-      "syntax": "max( <calc-sum># )"
+      "syntax": "max( <calc-sum># )",
+      "extended": []
     },
     {
       "name": "media()",
       "href": "https://drafts.csswg.org/css-conditional-5/#funcdef-media",
-      "type": "function",
-      "syntax": "media( [ <mf-plain> | <mf-boolean> | <mf-range> ] )"
+      "syntax": "media( [ <mf-plain> | <mf-boolean> | <mf-range> ] )",
+      "extended": []
     },
     {
       "name": "min()",
       "prose": "The min() or max() functions contain one or more comma-separated calculations, and represent the smallest (most negative) or largest (most positive) of them, respectively.",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-min",
-      "type": "function",
-      "syntax": "min( <calc-sum># )"
+      "syntax": "min( <calc-sum># )",
+      "extended": []
     },
     {
       "for": [
@@ -1579,26 +1600,26 @@
       ],
       "name": "minmax()",
       "href": "https://drafts.csswg.org/css-grid-2/#funcdef-grid-template-columns-minmax",
-      "type": "function",
-      "syntax": "minmax(min, max)"
+      "syntax": "minmax(min, max)",
+      "extended": []
     },
     {
       "name": "mod()",
       "href": "https://drafts.csswg.org/css-values-4/#funcdef-mod",
-      "type": "function",
-      "syntax": "mod( <calc-sum>, <calc-sum> )"
+      "syntax": "mod( <calc-sum>, <calc-sum> )",
+      "extended": []
     },
     {
       "name": "oklab()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-oklab",
-      "type": "function",
-      "syntax": "oklab([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "oklab([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<percentage> | <number> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "name": "oklch()",
       "href": "https://drafts.csswg.org/css-color-5/#funcdef-oklch",
-      "type": "function",
-      "syntax": "oklch([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<hue> | none] [ / [<alpha-value> | none] ]? )"
+      "syntax": "oklch([from <color>]? [<percentage> | <number> | none] [<percentage> | <number> | none] [<hue> | none] [ / [<alpha-value> | none] ]? )",
+      "extended": []
     },
     {
       "for": [
@@ -1606,104 +1627,108 @@
       ],
       "name": "opacity()",
       "href": "https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-opacity",
-      "type": "function",
-      "syntax": "opacity( [ <number> | <percentage> ]? )"
+      "syntax": "opacity( [ <number> | <percentage> ]? )",
+      "extended": []
     },
     {
       "name": "paint()",
       "href": "https://drafts.css-houdini.org/css-paint-api-1/#funcdef-paint",
-      "type": "function",
-      "syntax": "paint( <ident>, <declaration-value>? )"
+      "syntax": "paint( <ident>, <declaration-value>? )",
+      "extended": []
     },
     {
       "name": "palette-mix()",
       "prose": "With the palette-mix() function defined as follows:",
       "href": "https://drafts.csswg.org/css-fonts-4/#funcdef-palette-mix",
-      "type": "function",
-      "syntax": "palette-mix(<color-interpolation-method> , [ [normal | light | dark | <palette-identifier> | <palette-mix()> ] && <percentage [0,100]>? ]#{2})"
+      "syntax": "palette-mix(<color-interpolation-method> , [ [normal | light | dark | <palette-identifier> | <palette-mix()> ] && <percentage [0,100]>? ]#{2})",
+      "extended": []
+    },
+    {
+      "name": "param()",
+      "prose": "The param() function specifies a link parameter, with a key of the <dashed-ident>, and a value of the <declaration-value>?. (If the <declaration-value> is omitted, it represents an empty value.) It has the syntax:",
+      "href": "https://drafts.csswg.org/css-link-params-1/#funcdef-param",
+      "syntax": "param( <dashed-ident> , <declaration-value>? )",
+      "extended": []
     },
     {
       "for": [
         "<basic-shape>"
       ],
       "name": "path()",
-      "prose": "The <'fill-rule'> specifies the filling rule used to determine the interior. Defaults to nonzero if omitted, unless the function is being used in a context such as SVG shapes where the fill-rule property is relevant. In that case an omitted value will use the computed value of the fill-rule property. The <string> represents an SVG Path data string. A path data string that does not conform to the to the grammar and parsing rules of SVG 1.1, or that does conform but defines an empty path, is invalid and causes the entire path() to be invalid. The initial position is defined by the first “move to” argument in the path string. For the initial direction follow SVG 1.1. The UA must close a path with an implicit closepath command (\"z\" or \"Z\") if it is not present in the string for properties that require a closed loop (such as shape-outside and clip-path).",
       "href": "https://drafts.csswg.org/css-shapes-1/#funcdef-basic-shape-path",
-      "type": "function",
-      "syntax": "path( <'fill-rule'>? , <string> )"
+      "syntax": "path( <'fill-rule'>? , <string> )",
+      "extended": []
     },
     {
       "name": "perspective()",
       "href": "https://drafts.csswg.org/css-transforms-2/#funcdef-perspective",
-      "type": "function",
-      "syntax": "perspective( [ <length [0,∞]> | none ] )"
+      "syntax": "perspective( [ <length [0,∞]> | none ] )",
+      "extended": []
     },
     {
       "name": "pointer()",
       "prose": "The pointer() functional notation can be used as a <single-animation-timeline> value in animation-timeline and specifies a pointer progress timeline. Its syntax is",
       "href": "https://drafts.csswg.org/pointer-animations-1/#funcdef-pointer",
-      "type": "function",
-      "syntax": "pointer( [ <pointer-source> || <pointer-axis> ]? )"
+      "syntax": "pointer( [ <pointer-source> || <pointer-axis> ]? )",
+      "extended": []
     },
     {
       "for": [
         "<basic-shape>"
       ],
       "name": "polygon()",
-      "prose": "The <'fill-rule'> specifies the filling rule used to determine the interior. Defaults to nonzero if omitted. An optional <length> after a round keyword defines rounding for each vertex of the polygon. The length is the radius of a circle whose center lies on the bisector of the smaller angle of the vertex, and that is tangential to both sides of the vertex. Rounding polygon vertices that are both convex and concave. To avoid rounding more than half of any line segment, the rounding of each vertex must be clamped separately such that the radius is never more than the smaller of tan(angle/2) segment / 2 evaluated against both vertex line segments. This diagram shows the intent of the clamping formula. Each <length-percentage> pair specifies a vertex of the polygon, as a horizontal and vertical offset from the left and top edge

@github-actions github-actions bot force-pushed the release-css-20250718005951515 branch 17 times, most recently from 8fd9dab to 6b49361 Compare July 22, 2025 06:51
@github-actions github-actions bot force-pushed the release-css-20250718005951515 branch from 6b49361 to 983a91a Compare July 29, 2025 07:21
@tidoust
Copy link
Member

tidoust commented Jul 29, 2025

Descriptors merged. New extended property added.

@tidoust tidoust merged commit e09b5a0 into main Jul 29, 2025
@tidoust tidoust deleted the release-css-20250718005951515 branch July 29, 2025 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant